perm filename BORDER.MF[MF,ALS] blob sn#753987 filedate 1984-05-24 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	input bbase
C00009 ENDMK
CāŠ—;
input bbase;
sunrules;	% use this to get boxes on the SUN screen

N.height = S.height = W.width = E.width = 18pt;
M.height = M.width = 24pt;

apen:= pencircle scaled 2pt;
bpen:= pencircle scaled 1pt;
cpen:= pencircle scaled .5pt;
dpen:= pencircle scaled .25pt;

def horizline expr z =	% a horizontal line to the right of point z
	draw z .. z+(24pt,0); showit enddef;

vardef char.N.M =
z:=(0,15pt); pen apen; horizline (x,y);
z:=(0,12pt); pen bpen; horizline (x,y);
z:=(0,10pt); pen cpen; horizline (x,y);
z:=(0,9pt);  pen dpen; horizline (x,y);
enddef;

test N.M;


end

aspace:= 2pt;
bspace:= 1pt;
cspace:= .5pt;

def vertline expr z =	% a vertical line above point z
	draw z .. z-(0,18pt); showit enddef;
def CR = xx := x0; yy := y - 3pt; enddef;

def NWdialine expr z =	% a vertical line above point z
	draw z .. z+(xx,yy); showit enddef;
def NEdialine expr z =	% a vertical line above point z
	draw z .. z-(xx,yy); showit enddef;
def SEdialine expr z =	% a vertical line above point z
	draw z .. z+(xx,yy); showit enddef;
def SWdialine expr z =	% a vertical line above point z
	draw z .. z-(xx,yy); showit enddef;

def moveright = xx:=xx+2pt+adia enddef;	% move to next 6pt x 6pt square
def CR = xx:=x0; yy:=yy-6pt enddef;	% "carriage return"


vardef char.N.M =
pen dpen; horizline (0,7pt);
pen cpen; horizline (0,6pt);
pen bpen; horizline (0,5pt);
pen apen; horizline (0,1pt);
enddef;

test N.M;

end


pen largepen;
defaultpen:=pencircle scaled .4pt;
largepen:=pencircle scaled .6pt;

def horizline expr z =	% a horizontal line to the right of point z
	draw z+(.5pt,0)+noise .. z+(5.5pt,0)+noise; showit enddef;
def vertline expr z =	% a vertical line above point z
	draw z+(0,.5pt)+noise .. z+(0,5.5pt)+noise; showit enddef;


def H =		% six horizontal lines
 for y := .5pt step pt until 6pt: horizline (xx,yy+y); endfor;
 moveright enddef;
def V =		% six vertical lines
 for x := .5pt step pt until 6pt: vertline (xx+x,yy); endfor;
 moveright enddef;
def C =		% superimpose a circle on the previous lines
 path p; p=(xx-5pt,yy+3pt)+noise .. (xx-3pt,yy+5pt)+noise ..
		(xx-1pt,yy+3pt)+noise .. (xx-3pt,yy+1pt)+noise .. cycle;
 cullit; erase p; cullit; showit; draw p withpen largepen; showit; enddef;




input bbase;
% sunrules;	% use this to get boxes on the SUN screen

N.height = S.height = W.width = E.width = 18pt;
M.height = M.width = 24pt;

def noise=.1pt*(normaldeviate,normaldeviate) enddef;

pen largepen;
defaultpen:=pencircle scaled .4pt;
largepen:=pencircle scaled .6pt;

def horizline expr z =	% a horizontal line to the right of point z
	draw z+(.5pt,0)+noise .. z+(5.5pt,0)+noise; showit enddef;
def vertline expr z =	% a vertical line above point z
	draw z+(0,.5pt)+noise .. z+(0,5.5pt)+noise; showit enddef;

def moveright = xx:=xx+6pt enddef;	% move to next 6pt x 6pt square
def CR = xx:=x0; yy:=yy-6pt enddef;	% "carriage return"

def H =		% six horizontal lines
 for y := .5pt step pt until 6pt: horizline (xx,yy+y); endfor;
 moveright enddef;
def V =		% six vertical lines
 for x := .5pt step pt until 6pt: vertline (xx+x,yy); endfor;
 moveright enddef;
def C =		% superimpose a circle on the previous lines
 path p; p=(xx-5pt,yy+3pt)+noise .. (xx-3pt,yy+5pt)+noise ..
		(xx-1pt,yy+3pt)+noise .. (xx-3pt,yy+1pt)+noise .. cycle;
 cullit; erase p; cullit; showit; draw p withpen largepen; showit; enddef;

vardef char.N.M =
 xx:=x0:=3pt; yy:=15pt;
 H; V; H; V; CR;
 V; H; V; H; CR;
 H; V; H; V; enddef;

test N.M;

% the example file, continued:
vardef char.N.E =
 xx:=x0:=3pt; yy:=15pt;
 H; V; H; CR;
 V;H;C;V; CR;
 H; V; H; CR;
 V; H; V; enddef;

test N.E;

vardef char.N.W =
 xx:=x0:=-3pt; yy:=15pt;
 H; V; H; V; CR;
 V;H;C;V; H; CR;
 H; V; H; V; enddef;

test N.W;

vardef char.M.E =
 xx:=x0:=3pt; yy:=15pt;
 H; V; H; CR;
 V; H; V; CR;
 H; V; H; CR;
 V; H; V; enddef;

test M.E;

vardef char.M.W =
 xx:=x0:=-3pt; yy:=21pt;
 V; H; V; CR;
 H; V; H; CR;
 V; H; V; CR;
 H; V; H; enddef;

test M.W;

vardef char.S.M =
 xx:=x0:=-3pt; yy:=9pt;
 V; H; V; H; CR;
 H; V; H; V; CR;
 V; H; V; H; enddef;

test S.M;

vardef char.S.W =
 xx:=x0:=-3pt; yy:=15pt;
 V; H; V; CR;
 H; V; H; CR;
 V;H;C;V; CR;
 H; V; H; enddef;

test S.W;

vardef char.S.E =
 xx:=x0:=-3pt; yy:=9pt;
 V; H; V; H; CR;
 H; V;H;C;V; CR;
 V; H; V; H; enddef;

test S.E;
end